1. Technical Field
The present invention relates generally to a data processing technique of task scheduling. More particularly, the present invention relates to method and system for analyzing schedulability configured for a computer capable of operating an operating system that supports a hard real-time scheduling task group or a user processor operated in an embedded circuit.
2. Description of the Related Art
A real-time system refers to a system in which performance accuracy and an execution time within an end time of a task are used as a criterion for judging appropriate operation of the entire system. Operating systems for real-time systems may be classified into two types. First, a real-time operating system that only supports a real-time system.
Second, an extended general purpose operating system in which a real-time scheduler and non real-time scheduler are combined. Among these operating systems, users who use Unix-like real-time systems can use all services provided from Unix system. In addition, cost and time may be saved by its familiar development environment.
However, the extension of Unix-like operating systems is problematic in that it is impossible for a kernel of the Unix operating system to be preempted, and predictability is insufficient due to low accuracy of a timer. In order to solve the above problems, there is provided a method of following a POSIX.lb standard, a method of utilizing operating system characteristics, or a method of combining the above two methods.
Generally, a Linux system supports soft real-time systems with a part of a POSIX.lb standard support. At present, RTinux has been developed to support hard real-time systems; however, various programming interfaces and resources for a scheduler are still insufficient.
Particularly, improvements supporting real-time Linux system are used in a wide embedded system. For example, a recent extension of process scheduling includes a resource reservation framework (in other words, cgroup) for task groups. Efforts are being made to produce improvements supporting real-time system, and a Linux system will become a potential operating system for hard real-time application in the near future. However, there are still many points to be improved since general purpose operating systems such as Linux are not designed for hard real-time systems.
In addition, scheduling tests of cgroup are overly optimistic. A current scheduling implementation of a Linux task group guarantees that task groups do not use more than reserved central processing unit (CPU) resources. Further, when task groups are not supposed to use 100% of CPU resources, scheduling tests are omitted. However, it is not possible to guarantee that all task groups will use as much as the reserved resources in every period.
Therefore, in order to make all task groups to be always able to use a reserved resource in every period, first, the worst case scenario for given task groups may be identified.
In addition, a scheduling test of cgroup does not consider a real-time scheduler with high priority (for example, SCHED_DEADLINE). A deadline scheduling policy (SCHED_DEADLINE) has top priority and has higher priority than a non-periodic scheduler that is a resource management subject of cgroup. Therefore, a cgroup using schedulers that have lower priority (for example, SCHED_FIFO and SCHED_RR) compared with the SCHED_DEADLINE has to consider reserved resources made by SCHED_DEADLINE while scheduling testing. However, the current implementation does not take this into account.
Thus, operating systems such as Linux need a scheduling test algorithm that tests for hard real-time system worst case scenarios.